#include "widget.h"
#include "ui_widget.h"

#include "mylabel.h"

#include <QLineEdit>
#include <QObject>
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    //相较于桌面移动Widget窗口
    this->move(100,100);


    QLabel* Qlabel = new QLabel(this);
    Qlabel->setText("内置标签");

    //自定义标签
    MyLabel* label = new MyLabel(this);
    label->setText("学会吧哥mylabel");
    label->move(550,400);

    //输入框
    QLineEdit* Edit = new QLineEdit(this);
    Edit->setText("学会吧哥Edit");
    Edit->move(300,400);

    //代码生成按钮
    myButton = new QPushButton(this);
    myButton->setText("就不学myButton");
    myButton->move(200,300);
    //坐标的单位为像素

    connect(myButton, &QPushButton::clicked, this, &Widget::code_handleClick);
    connect(ui->PushButton, &QPushButton::clicked, this, &Widget::ui_handleClick);
    //谁发出的信号，发出的什么信号，

    /*
      纯代码版本，按钮是自己new的，为了确保其他函数可以访问，需要设定为Widget类的成员变量
      ui的按钮对象，不需要new，new对象的操作已经是被Qt自动生成的，而且其已经是ui对象里的一个成员变量，也无需作为Widget的成员
      如果当前程序界面，内容比较固定，使用图形化（ui）方式构造
      如果经常要动态变化，用代码的方式构造
    */
}

Widget::~Widget()
{
    delete ui;
}
void Widget::code_handleClick()
{
    //按钮被点击后，就把按钮中的文本切换
    if(myButton->text() == QString("还不学？"))
        myButton->setText("菜就多练!");
    else
        myButton->setText("还不学？");
}

void Widget::ui_handleClick()
{
    //按钮被点击后，就把按钮中的文本切换
    if(ui->PushButton->text() == QString("还不学？"))
        ui->PushButton->setText("菜就多练!");
    else
        ui->PushButton->setText("还不学？");
}


